<?php

include_once 'daos/mysqlConection.php';
include_once 'clases_php/Equipo.php';
include_once 'clases_php/Partido.php';

class TorneoDaoImp extends mysqlConection{

	
	//Autor: Luis Gabriel López
	//Comp: Crear Torneo
	//Clase: TorneoDaoImp
	//Pre:  torneo NO puede ser vacío.
	//Pos: Se inserta en BD el torneo recibido. Se devuelve un mensaje con la respuesta SQL.
	function insertTorneo($torneo, $usuario){
		$retorna = 0;
		$sql = "INSERT INTO torneo (nombre_torneo,estado,id_sistema_juego,id_usuario) VALUES ('".$torneo->nombre."', 1, 1, ".$usuario.")";
		try
			{
				$retorna=$this->ejecutarQuery($sql);
			}
			catch (Exception $e)
			{
				echo "ERROR QUERY";

			}
		return $retorna;
	}
	
	
	
	//Autor: Luis Gabriel López y Gustavo Adolfo Bello
	//Comp: Sortear Calendario
	//Clase: TorneoDaoImp
	//Pre: p ni t pueden ser vacíos. 
	//Pos: Se inserta el partido p en el Torneo t en BD.
	function insertPartido($p,$t){
		$retorna = 0;
		$sql = "INSERT INTO equipos_partido (partido_id_partido,equipo_id_equipo) VALUES ('".$p."','".$t."')";
		try
			{
				$retorna=$this->ejecutarQuery($sql);
			}
			catch (Exception $e)
			{
				echo "ERROR QUERY";

			}
		return $retorna;
	}
	
	
	//Autor: Luis Gabriel López
	//Comp: Crear Torneo
	//Clase: TorneoDaoImpl
	//Pre: 
	//Pos: Trae de la BD todos los torneos, los guarda en un arreglo de torneos.
	function traerTorneos(){
		$torneos = array();
		$sql= "SELECT * FROM torneo";
		$resultset=$this->ejecutarQuery($sql);
		while($row = mysql_fetch_array($resultset))
		  {
		  	$torn = new Torneo($row['nombre_torneo']);
		  	$torn->idTorneo = $row['id_torneo'];
		  	$torn->estadoTorneo = $row['estado'];
		  	$torn->sistemaJuego = $row['id_sistema_juego'];
		  	array_push($torneos, $torn);
		  }
		return  $torneos;
	}
	
	function crearPartidos($idTorneo, $partidos){
		$retorna = 0;
		$tam = sizeof($partidos);
		$numP;
		try	{
			$a;
			$retorna=$this->ejecutarQuery("select count(*) as num from equipos_torneo where torneo_id_torneo = $idTorneo");	
			while($row = mysql_fetch_array($retorna))
			  	$a = $row['num'];
			if($a % 2 == 0)
				$numP = ($a/2);
			else 
				$numP = (($a-1)/2);	
		}catch (Exception $e){
			echo "ERROR QUERY";
		}
		
		$b=0;
		$sqlVal = "SELECT COUNT(DISTINCT (fecha)) as cantidad FROM partido WHERE torneo_id_torneo=$idTorneo";
		$resultset=$this->ejecutarQuery($sqlVal);
		try {
			while($row = mysql_fetch_array($resultset))
			  	$b = $row['cantidad'];		
			 	
		} catch (Exception $e) {
			echo "ERROR QUERY";
		}
		if($b==0){
			$sql = "INSERT INTO partido (golesL,golesV,torneo_id_torneo,fecha) VALUES ";
			if($partidos!=null && sizeof($partidos)!=0)
				for ($i = 0; $i < $tam; $i++) {
					$fecha = $partidos[$i]->fecha;
					$f=split("/",$fecha);
					if($i!=$tam-1)
				    	$sql .= " (-1,-1,$idTorneo,'$f[2]-$f[1]-$f[0]'), ";
					else 
				    	$sql .= " (-1,-1,$idTorneo,'$f[2]-$f[1]-$f[0]') ";
					
				}
			for ($i = 0; $i < $numP; $i++) {
				try	{
					$retorna=$this->ejecutarQuery($sql);		
				}catch (Exception $e){
					echo "ERROR QUERY";
				}
			}
		}else{
			$retorna = array('exito'); 
			$sql = "SELECT id_partido FROM partido WHERE torneo_id_torneo = $idTorneo ORDER BY fecha ASC";
			$sql1 = "UPDATE partido SET fecha='";
			$sql2 = "' WHERE id_partido=";
			$resultados=$this->ejecutarQuery($sql);
			$ids = array();
			while($row = mysql_fetch_array($resultados))
			  	array_push($ids, $row['id_partido']);		
			if($partidos!=null && sizeof($partidos)!=0)
				
				for ($i = 0; $i < $tam; $i++) {
					$fecha = $partidos[$i]->fecha;
					$f=split("/",$fecha);
					//for ($i = 0; $i < $numP; $i++) {
					$j=0;
					
					while($j<$numP && !empty($ids)){
						try	{
							$retorna=$this->ejecutarQuery($sql1.$f[2].'-'.$f[1].'-'.$f[0].$sql2.array_shift($ids));
						}catch (Exception $e){
							echo "ERROR QUERY";
						}
						$j++;
					}
				}
				
		}
		return $retorna;
	}
	//Autor: Juan Diego Trujillo Perez
	//Comp: Crear Torneo
	//Clase: TorneoDaoImp
	//Pre:  nombre de torneo no puede ser vacio
	//Pos: Se trae el id del torneo segun el nombre que le entra. 
	// Se retorna un int con el id del torneo
	function idTorneo($nombreTorneo){
		$sql = "select id_torneo from torneo where nombre_torneo='$nombreTorneo'";
		$resultset=$this->ejecutarQuery($sql);
		$fila = mysql_fetch_array($resultset);
		return $fila["id_torneo"];
	}
	//Autor: Juan Diego Trujillo Perez
	//Comp: Buscar Partido
	//Clase: TorneoDaoImp
	//Pre:  El id del torneo no puede ser nulo
	//Pos: Se trae el nombre del torneo 
	function nombreTorneo($idTorneo){
		$sql = "select nombre_torneo  from torneo where id_torneo=$idTorneo";
		$resultset=$this->ejecutarQuery($sql);
		$fila = mysql_fetch_array($resultset);
		return $fila["nombre_torneo"];
	}
	
	//Autor: Luis Gabriel López y Claudia Pérez
	//Comp: Consultar Tabla Posiciones y Agregar Equipos a un Torneo
	//Clase: TorneoDaoImp
	//Pre:  idTorneo NO puede ser vacío.
	//Pos: Se trae de la BD los equipos pertenecientes al torneo entrante. 
	// Se retorna un arreglo de equipos.
	function traerEquipos($idTorneo){
		$equipos  =array();
		$sql = "select * from equipo e where id_equipo in (select et.equipo_id_equipo from equipos_torneo et where et.torneo_id_torneo= '".$idTorneo."' )";
		$resultset=$this->ejecutarQuery($sql);
		while($row = mysql_fetch_array($resultset))
		  {
		  	array_push($equipos, new Equipo($row['nombre_equipo']));
		  }
		return  $equipos;
	}
	
	
	//Autor: Luis Gabriel López y Claudia Pérez
	//Comp: Consultar Tabla Posiciones y Agregar Equipos a un Torneo
	//Clase: TorneoDaoImp
	//Pre:  idTorneo NO puede ser vacío.
	//Pos: Se trae de la BD los partidos pertenecientes al torneo entrante. 
	// Se retorna un arreglo de partidos.
	function traerPartidos($idTorneo){
		$partidos = array();
		$sql = "SELECT * FROM partido p where p.torneo_id_torneo = '".$idTorneo."'";
		$resultset=$this->ejecutarQuery($sql);
		while($row = mysql_fetch_array($resultset))
		  {
		  	$part = new Partido($row['fecha']);
		  	$part->idPartido = $row['id_partido'];
		  	$part->golesL = $row['golesL'];
		  	$part->golesV = $row['golesV'];
		  	$sql2 = "SELECT * from equipo e where e.id_equipo in (SELECT  ep.equipo_id_equipo FROM equipos_partido ep where ep.partido_id_partido = '".$part->idPartido."')";
		  	$resultset2 = $this->ejecutarQuery($sql2);
		  	$equipos = array();
		  	while($row2 = mysql_fetch_array($resultset2))
		  	{	
		  		array_push($equipos, $row2['nombre_equipo']);
		  	}
		  	$part->equipos = $equipos;
		  	
		  	//Ahora si agregue el partido al arreglo
		  	array_push($partidos, $part);
		  }
		return  $partidos;
	}
	
	
	//Autor: Claudia Pérez.
	//Comp: Agregar equipos a un Torneo
	//Clase: TorneoDaolmp
	//Pre: idTorneo!=null, equipo.length!=0
	//Pos: Se guarda en la BD los equipos asignándose al torneo que entra.
	
	function guardarEquipoTorneo($idTorneo, $equipo){
			//delete from partido where torneo_id_torneo = 11
			$q=$this->ejecutarQuery("delete from partido where torneo_id_torneo = $idTorneo");
			$sql = "INSERT INTO equipos_torneo VALUES (".$idTorneo.",".$equipo.")";
			//echo "   ".$sql."   ";
			$resultset=$this->ejecutarQuery($sql);
			return $resultset;
		
	}
	
	//Autor: Luis Gabriel López Vargas.
	//Comp: Sortear Calendario
	//Clase: TorneoDaolmp
	//Pre: torneo!=null, estado!=null
	//Pos: Se actualiza el estado del torneo con los parámetros recibidos.
	function actualizarEstadoTorneo($idTorneo, $estado){
		
			$sql = "UPDATE torneo SET estado = ".$estado." WHERE id_torneo = ".$idTorneo."";
			//echo "   ".$sql."   ";
			$resultset=$this->ejecutarQuery($sql);
			return $resultset;
		
	}
	
}
?>